1. Field of the Invention
The invention generally relates to integrated circuit chips and related devices and methods, and in particular to the handling of non-posted read requests in devices such as southbridges or I/O hubs.
2. Description of the Related Art
Integrated circuit chips are often used for data processing and are known to comprise a number of different circuit units. Generally, each circuit unit is for performing a specific function and of course, there may be different circuit units provided on one chip for performing the same function, or performing different functions. The circuit units may operate sequentially in time or simultaneously, and they may function independently from each other, or dependent on the operation of other circuit units.
In the latter case, the circuit units are usually interconnected via an interface to allow the circuit units to interchange data needed for making the operation of one circuit unit dependent on the operation of the other circuit unit. The data exchange is often done by sending transactions from one circuit unit to the other circuit unit. A transaction is a sequence of packets that are exchanged between the circuit units and that result in a transfer of information. The circuit unit initiating a transaction is called the source (or master), and the circuit unit that ultimately services the transaction on behalf of the source is called target. It is to be noted that there may also be intermediary units between the source and the target.
Transactions may be used to place a request, or to respond to a received request. Taking the requests, there may be distinguished posted request from non-posted requests, dependent on whether the request requires a response. Specifically, a non-posted request is a request that requires a response while a posted request does not require a response.
When focusing on the functions which are performed by the interconnected circuit units, the circuit units can often be divided into hosts and devices. The term host then means a circuit unit that provides services to the dependent device. A transaction from the host to the device is said to be downstream while a transaction in the other direction is said to be upstream. In bi-directional configurations, both the host and the device may send and receive requests and responses so that a device may be source as well as target, and also the host may function as source as well as device.
A field where such integrated circuit chips are widely used are personal computers. Referring to FIG. 1, the hardware components of a common motherboard layout are depicted. It is to be noted that this figures shows only one example of a motherboard layout, and other configurations exist as well. The basic elements found on the motherboard of FIG. 1 may include the CPU (Central Processing Unit) 100, a northbridge 105, a southbridge 110, and system memory 115.
The northbridge 105 is usually a single chip in a core-logic chipset that connects the processor 100 to the system memory 115 and, e.g., to the AGP (Accelerated Graphic Port) and PCI (Peripheral Component Interface) buses. The PCI bus is commonly used in personal computers for providing a data path between the processor 100 and peripheral devices like video cards, sound cards, network interface cards and modems. The AGP bus is a high-speed graphic expansion bus that directly connects the display adapter and system memory 115. AGP operates independently of the PCI bus. It is to be noted that other motherboard layouts exist that have no northbridge in it, or that have a northbridge without AGP or PCI options.
The southbridge 110 is usually the chip in a system core-logic chipset that controls the IDE (Integrated Drive Electronics) or EIDE (Enhanced IDE) bus, controls a USB (Universal Serial Bus) bus that provides plug-and-play support, controls a PCI-ISA (Industry Standard Architecture) bridge, manages the keyboard/mouse controller, provides power management features, and controls other peripherals.
Thus, common personal computers include southbridges 110 which are integrated circuit chips substantially as described above. Conventionally, the southbridge 110 and the northbridge 105 are interconnected by the PCI bus acting as system bus so that the northbridge 105 works as host-to-PCI bridge forming a link between the host bus that connects to the processor 100, and the PCI bus whereas the southbridge 110 works as, e.g., PCI-to-ISA bus where the ISA (Industry Standard Architecture) bus is the I/O bus. However, other chipset arrangements exist in which the northbridge 105 operates as memory controller hub and the southbridge 110 as I/O controller hub. In such structures, the northbridge 105 and the southbridge 110 are no longer interconnected by a system bus but by a specific hub interface.
To satisfy the demands for high-speed chip-to-chip communication in such hub interfaces, the HyperTransport™ technology was developed which provides a high-speed, high-performance point-to-point on-board link for interconnecting integrated circuits on a motherboard. It can be significantly faster than a PCI bus for an equivalent number of pins. The HyperTransport technology is designed to provide significantly more bandwidth than current technologies, to use low-latency responses, to provide low pin count, to be compatible with legacy computer buses, to be extensible to new system network architecture buses, to be transparent to operating systems, and to offer little impact on peripheral drivers.
The hardware components of a HyperTransport compliant southbridge device (or I/O hub) is depicted in FIG. 2. A number of bus masters 230-260 are provided for controlling peripheral system components. The controllers include a hard disk controller 230, an ethernet controller 240, a USB (Universal Serial Bus) controller 250, and an AC (Audio Codec) '97 controller 260. These controllers act as bus masters to interact with a transmit engine 220 and a receive engine 210 of the device. The transmit engine 220 receives requests from the controllers 230-260 and performs an arbitration to select at any one time one of the requestors 230-260. Based on the received requests, the transmit engine 220 sends commands to the HyperTransport interface unit 200 that interfaces to a HyperTransport compliant link. Received responses are supplied from the HyperTransport interface unit 200 to the receive engine 210 where the responses are forwarded to the respective controllers 230-260 that were the originators of the requests.
Thus, the HyperTransport interface is a split transaction interface, i.e., requests and responses are transferred on the bus as completely decoupled and independent transactions. All HyperTransport I/O devices must be able to accept responses out of order or restrict themselves to one outstanding non-posted request. A bridge that is between a HyperTransport technology device and an I/O protocol that requires responses to be returned in order must provide sufficient buffering to be able to reorder as many responses as it may have outstanding requests.
Thus, the HyperTransport technology supports multiple outstanding read requests and requires in such cases to buffer responses. However, the HyperTransport specification does not contain more detailed definitions with respect to the hardware implementation for realizing this function. It has been found that providing nothing more than just a buffer for returned responses may still impose limitations with respect to the data throughput and thus, the overall system performance.
If, however, the device of FIG. 2 is configured not to support multiple outstanding requests, the entire device may be blocked once a request is placed until the respective response is received and delivered. This is illustrated in FIG. 3 where at any one time only one request is active. This significantly reduces the data throughput since no data traffic takes place if a request is placed but a response is not yet available.